package com.zmn.oms.third.shunfeng.api;

import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 顺丰安装渠道安装任务数据定义，用于安装任务初始化，更新和取消
 *
 * @author xiewenbing
 * @date 2020/12/10
 */
@Data
@ToString
public class SFOrderTaskData implements Serializable {

    /**
     * 母单号 - 必填
     */
    String waybillNo;

    /**
     * 任务编码 - 必填，接收订单时，需要根据taskCode做唯一性判断
     */
    String taskCode;

    /**
     * 子单号 - 必填，用逗号（,）隔开，此字段可以用于提货+安装业务的提货包裹数的校验
     */
    String subWaybillNos;

    /**
     * 订单来源，如京东
     */
    String orderSource;

    /**
     * 客户订单号
     */
    String customOrderId;

    /**
     * 货物名称
     */
    String cargoName;

    /**
     * 货物的计费体积
     */
    String totalVolume;

    /**
     * 整票的计费重量
     */
    String totalWeight;

    /**
     * 收件人 - 必填
     */
    String receiverName;

    /**
     * 安装类型 - 必填，1:上门安装 2：提货+安装，安装类型以到货信息为最终依据
     */
    String serviceType;

    /**
     * 收件人电话 - 必填
     */
    String receiverPhone;

    /**
     * 收件人地址 - 必填
     */
    String receiverAddress;

    /**
     * 子母件数 - 必填
     */
    Integer packageCount;

    /**
     * 版本号 - 必填
     */
    Integer version;

    /**
     * 订单的状态 - 必填，1：新增/修改 2：取消，可以使用version判断数据版本号
     */
    String supplierOrderStatus;

    /**
     * 备注
     */
    String remark;

    /**
     * 要安装的订单列表 - 必填
     */
    List<SFInstallType> installTypes;

    /**
     * 扩展字段，Key & Value数据对
     */
    Map<String, String> extendInfo;
}
